﻿//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
// C/C++ 学习网站：https://legacy.cplusplus.com 注意旧版本（搜索）和新版本

#include "common.h"

typedef enum Color { RED = 255, GREEN = 255, BLUE = 255 } color;

typedef enum Month {
    January = 1, // 一月 枚举值可以是任意整数 枚举值可以是任意整数
    February,   // 二月
    March,      // 三月
    April,      // 四月
    May,        // 五月
    June,       // 六月
    July,       // 七月
    August,     // 八月
    September,  // 九月
    October,    // 十月
    November,   // 十一月
    December    // 十二月
} month;

void print_color(color c) // 枚举类型作为函数参数
{
    printf("the color is %d\n", c);
}

void print_month(month* m) // 枚举指针类型作为函数参数
{
    printf("the month is %d\n", *m);
}

void enum_test()
{
    printf("sizeof color is %zd\n", sizeof(color)); // 4 枚举类型占用内存大小
    color c = GREEN; // 枚举类型变量可以直接赋值，枚举值可以是任意整数，可以存在相同
    printf("The color is %d\n", c);

    printf("sizeof month is %zd\n", sizeof(month)); // 4 枚举类型占用内存大小
    // 枚举类型可以作为函数参数和返回值
    month m = November;
    print_month(&m); // 调用函数传递枚举类型指针作为参数
}


